package com.ebt.m.wiki.view;

import android.content.Context;
import android.util.AttributeSet;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;

import com.ebt.m.R;

/**
 * 保险利益View
 * 
 * @author Michael.li
 * 
 */
public class WikiTab2CollapseView extends LinearLayout implements OnClickListener {

//	/** 默认类型 **/
//	public static final int TYPE_DEFAULT = 0;
//	/** 保障期间 **/
//	public static final int TYPE_POLICYTERM = 1;
//	/** 期交方式 **/
//	public static final int TYPE_PAYMENTMETHOD = 2;

//	private TextView mTitle;
//	private LinearLayout mScrollContainer;

	private ImageView mImageView;
	private Button mLeftButton;
	private Button mRightButton;
	private OnAllCollapsedListener mListener;
	
	public WikiTab2CollapseView(Context context) {
		this(context, null);
	}

	public WikiTab2CollapseView(Context context, AttributeSet attrs) {
		this(context, attrs, 0);
	}

	public WikiTab2CollapseView(Context context, AttributeSet attrs, int defStyle) {
		super(context, attrs, defStyle);
		inflate(context, getLayoutResource() , this);
//		mTitle = (TextView) findViewById(R.id.wiki_option_title);
//		mScrollContainer = (LinearLayout) findViewById(R.id.wiki_option_container);
		mImageView = (ImageView) findViewById(R.id.wiki_collapse_button);
		mLeftButton = (Button) findViewById(R.id.wiki_collapse_button_left);
		mRightButton = (Button) findViewById(R.id.wiki_collapse_button_right);
//		setOrientation(LinearLayout.VERTICAL);
//		setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
//		int padding_h = UIHelper.dip2px(context, 10);
//		int padding_v = UIHelper.dip2px(context, 5);
//		setPadding(padding_h, padding_v, padding_h, padding_v);
//		setGravity(Gravity.CENTER);

//		mTitle = new EbtTextView(context);
//		mTitle.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
//		mTitle.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 16);
//		mTitle.setTextIsSelectable(false);
//		mTitle.setTextColor(getTitleColor());
//		mTitle.setEms(getTitleEms());
//
//		addView(mTitle);
//		HorizontalScrollView scroll = new HorizontalScrollView(context);
//		LayoutParams params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
//		params.leftMargin = padding_h;
//		scroll.setLayoutParams(params);
//		mScrollContainer = new LinearLayout(context);
//		mScrollContainer.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.MATCH_PARENT));
//		mScrollContainer.setOrientation(LinearLayout.HORIZONTAL);
//		mScrollContainer.setGravity(Gravity.CENTER_VERTICAL);
//		scroll.addView(mScrollContainer);
//		addView(scroll);
	}
//	public void scrollToAvailable(){
//		HorizontalScrollView vv = (HorizontalScrollView) mScrollContainer.getParent();
//		vv.smoothScrollTo(0, 0);
//	}
	
	/**
	 * layout id
	 * 
	 * @return
	 */
	protected int getLayoutResource() {
		return R.layout.wiki_view_tab2_collapse;
	}
	/**
	 * 标题数量
	 * 
	 * @return
	 */
//	protected int getTitleEms() {
//		return 2;
//	}
	/**
	 * 标题颜色
	 * 
	 * @return
	 */
//	protected int getTitleColor() {
//		return Color.BLACK;
//	}
	/**
	 * 设置数据源
	 * 
	 * @param title
	 *            标题
	 * @param values
	 *            可选集合
	 * @param availables
	 *            可用集合
	 * @param defaultValue
	 *            默认值
	 * @param type
	 *            类型
	 */
//	public void setData(String title,String[] displays, int[] availables, int selectIndex, int type) {
//		mScrollContainer.removeAllViews();
//		mTitle.setText(title);
//		for (int i = 0; i < availables.length; i++) {
////			int value = values[i];
//			ProdcutOptionView view = getOptionView(type);
//			if (i == selectIndex) {
//				view.setState(ProdcutOptionView.STATE_SELECTED);
//			} else {
//				if (availables[i]==1) {
//					view.setState(ProdcutOptionView.STATE_DEFAULT);
//				} else {
//					view.setState(ProdcutOptionView.STATE_DISABLED);
//				}
//			}
////			view.setValue(value);
//			view.setText(displays[i]);
//			view.setOnClickListener(this);
//			mScrollContainer.addView(view);
//		}
//	}
	
	
	/**
	 * 设置可选的集合 不可选的为灰色背景
	 * 
	 * @param values
	 */
	// public void setOptionValues(int[] values)
	// {
	// // 默认选中第一个
	// boolean selected = false;
	// for (int i = 0, j = mScrollContainer.getChildCount(); i < j; i++) {
	// ProdcutOptionView view = (ProdcutOptionView)
	// mScrollContainer.getChildAt(i);
	// if (isEnabled(view.getValue(), values)) {
	// if (!selected) {
	// selected = true;
	// view.setState(ProdcutOptionView.STATE_SELECTED);
	// } else {
	// view.setState(ProdcutOptionView.STATE_DEFAULT);
	// }
	// } else {
	// view.setState(ProdcutOptionView.STATE_DISABLED);
	// }
	// }
	// }

	/**
	 * 获取选中的值
	 * 
	 * @return
	 */
//	public int getSelectedValue() {
//		int value = 0;
//		for (int i = 0, j = mScrollContainer.getChildCount(); i < j; i++) {
//			ProdcutOptionView view = (ProdcutOptionView) mScrollContainer.getChildAt(i);
//			if (view.getState() == ProdcutOptionView.STATE_SELECTED) {
//				value = view.getValue();
//			}
//		}
//		return value;
//	}

	/**
	 * 获取选中的索引
	 * 
	 * @return
	 */
//	public int getSelectedIndex() {
//		int index = 0;
//		for (int i = 0, j = mScrollContainer.getChildCount(); i < j; i++) {
//			ProdcutOptionView view = (ProdcutOptionView) mScrollContainer.getChildAt(i);
//			if (view.getState() == ProdcutOptionView.STATE_SELECTED) {
//				index = i;
//				break;
//			}
//		}
//		return index;
//	}

//	private String fieldName;
//
//	public String getFieldName() {
//		return fieldName;
//	}
//
//	public void setFieldName(String fieldName) {
//		this.fieldName = fieldName;
//	}

	/**
	 * 该选项是否可用
	 * 
	 * @param value
	 * @param values
	 * @return
	 */
//	public boolean isEnabled(int value, int[] values) {
//		boolean enabled = false;
//		for (int i = 0; i < values.length; i++) {
//			if (value == values[i]) {
//				enabled = true;
//				break;
//			}
//		}
//		return enabled;
//	}

	@Override
	public void onClick(View v) {
//		ProdcutOptionView view = (ProdcutOptionView) v;
//		if (view.getState() == ProdcutOptionView.STATE_SELECTED)
//			return;
//		if (view.getState() == ProdcutOptionView.STATE_DISABLED)
//			return;
//		for (int i = 0, j = mScrollContainer.getChildCount(); i < j; i++) {
//			view = (ProdcutOptionView) mScrollContainer.getChildAt(i);
//			if (ProdcutOptionView.STATE_SELECTED == view.getState()) {
//				view.setState(ProdcutOptionView.STATE_DEFAULT);
//			}
//		}
//		view = (ProdcutOptionView) v;
//		view.setState(ProdcutOptionView.STATE_SELECTED);
//		if (mListener != null) {
//			mListener.OnChecked(this);
//		}
		// if (optionChangedListener != null) {
		// optionChangedListener.onOptionChanged(view.getValue());
		// }
		
//		this.mListener.OnCollapseClick();
		if(mListener == null){
			return;
		}
		switch(v.getId()){
		case R.id.wiki_collapse_button:
			mListener.OnCollapseClick();
			break;
			
		case R.id.wiki_collapse_button_left:
			mListener.OnLeftButtonClick();
			break;
			
		case R.id.wiki_collapse_button_right:
			mListener.OnRightButtonClick();
			break;
			
		default:
			break;
		}
		
	}

//	protected ProdcutOptionView getOptionView(int type) {
////		switch (type) {
////		case TYPE_POLICYTERM:
////			return new PolicyTermView(getContext());
////		case TYPE_PAYMENTMETHOD:
////			return new PaymentMethodView(getContext());
////		default:
//			return new ProdcutOptionView(getContext());
////		}
//	}

	public interface OnAllCollapsedListener {
//		void OnCollapseClick(WikiTab2CollapseView view);
		void OnCollapseClick();
		void OnLeftButtonClick();
		void OnRightButtonClick();
	}
	
//	public void setOnCollapsedListener(OnCollapsedListener listener) {
//		this.mListener = listener;
//		mImageButton.setOnClickListener(this);
//	}

//	public void setImageButtonOnClickListener(View.OnClickListener listener){
//		
//		mImageView.setOnClickListener(listener);
//	}
//	
//	public void setLeftButtonOnClickListener(View.OnClickListener listener){
//		//TODO
//		mLeftButton.setOnClickListener(listener);
//	}
//
//	public void setRightButtonOnClickListener(View.OnClickListener listener){
//	//TODO
//		mRightButton.setOnClickListener(listener);
//	}
	
	public void setAllCollapseOnClickListener(OnAllCollapsedListener listener){
		this.mListener = listener;
		mImageView.setOnClickListener(this);
		mLeftButton.setOnClickListener(this);
		mRightButton.setOnClickListener(this);
	}
	
	
	// public interface OnOptionChangedListener
	// {
	// /**
	// * 选项改变
	// *
	// * @param value
	// */
	// void onOptionChanged(int value);
	// }
	//
	// private OnOptionChangedListener optionChangedListener;
	//
	// public void setOnOptionChangedListener(OnOptionChangedListener
	// optionChangedListener)
	// {
	// this.optionChangedListener = optionChangedListener;
	// }

	/**
	 * 保障期间
	 * 
	 * @author Michael.li
	 * 
	 */
//	private class PolicyTermView extends ProdcutOptionView {
//		public PolicyTermView(Context context) {
//			super(context);
//		}
//
//		@Override
//		protected String getText(int value) {
//			if (value == 0) {
//				return "终身";
//			} else if (value > 0) {
//				return value + "年";
//			} else {
//				return "至" + Math.abs(value) + "岁";
//			}
//		}
//	}
//
//	/**
//	 * 期交方式
//	 * 
//	 * @author Michael.li
//	 * 
//	 */
//	private class PaymentMethodView extends ProdcutOptionView {
//		public PaymentMethodView(Context context) {
//			super(context);
//		}
//
//		@Override
//		protected String getText(int value) {
//			switch (value) {
//			case 12:
//				return "年";
//			case 6:
//				return "半年";
//			case 3:
//				return "季交";
//			case 1:
//				return "月交";
//			default:
//				return "趸交";
//			}
//		}
//	}
}